home *** CD-ROM | disk | FTP | other *** search
/ IRIX Installation Tools & Overlays 2001 May / SGI IRIX Installation Tools & Overlays 2001 May - Disc 3.iso / relnotes / dmedia_dev / ch09.z / ch09
Text File  |  2001-04-16  |  15KB  |  397 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        9.  _M_o_v_i_e__L_i_b_r_a_r_y
  9.  
  10.        This chapter lists information about the Movie Library
  11.        programming interface included IRIS Digital Media
  12.        Development Environment.  It includes changes, additions,
  13.        and bug fixes since the IRIX 5.3 releases, known problems
  14.        and workarounds.
  15.  
  16.        The IRIS Movie Library is a application programming
  17.        interface for the creation of programs which read, write,
  18.        and play movies. A movie is a file containing sequences of
  19.        images and/or audio. A movie is a useful display method for
  20.        graphical sequences which cannot be rendered in real time or
  21.        for any sequenced image data. The Movie Library currently
  22.        provides support for the native Silicon Graphics movie file
  23.        format, QuickTime(*) file format, MPEG I Systems Layer, and
  24.        the AVI format, and DIF format (DVC/DVCPro raw data).  Not
  25.        all of the movie library features are available with all
  26.        file formats.
  27.  
  28.        The main features of the Movie Library (MV) are:
  29.  
  30.           +o Ability to read, write, and play movie files.
  31.  
  32.           +o High level interface to image data compression.
  33.  
  34.           +o Support for several file formats, including
  35.  
  36.                     Apple QuickTime(*)
  37.  
  38.                     AVI
  39.  
  40.                     DIF (Raw DV) files
  41.  
  42.                     MPEG-1 system bitstreams
  43.  
  44.                     MPEG-1 video bitstreams
  45.  
  46.                     SGI Movie
  47.  
  48.           +o File-format independent API.
  49.  
  50.           +o Asynchronous playback support with flexible controls.
  51.  
  52.           +o Basic editing features for image and audio sequences.
  53.  
  54.           +o Support for embedded movies in applications software.
  55.  
  56.        The Movie Library is composed of two high-level DSO's,
  57.        _l_i_b_m_o_v_i_e_f_i_l_e._s_o and _l_i_b_m_o_v_i_e_p_l_a_y._s_o, which contain the
  58.        public movie API calls. Debugging versions of the library
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.        are available as well (/_u_s_r/_l_i_b/_d_e_b_u_g/_l_i_b_m_o_v_i_e_f_i_l_e._s_o and
  75.        /_u_s_r/_l_i_b/_d_e_b_u_g/_l_i_b_m_o_v_i_e_p_l_a_y._s_o).  They perform extra error
  76.        checking on all parameters passed into the library and
  77.        provide more extensive feedback to the programmer as to what
  78.        might be wrong.  However, they also incur a substantial
  79.        overhead and it is not recommended that they be for anything
  80.        other than testing. They may be used by setting
  81.        LD_LIBRARY_PATH (or LD_LIBRARYN32_PATH) to point at
  82.        /usr/lib/debug (or /usr/lib32/debug) and running the
  83.        application. See rrrrlllldddd((((1111)))) for more information.
  84.  
  85.        For additional information about the Movie Library see the
  86.        overview manual page mmmmvvvvIIIInnnnttttrrrroooo(3mv).
  87.  
  88.  
  89.  
  90.        9.1  _P_r_o_g_r_a_m_m_i_n_g__E_x_a_m_p_l_e_s
  91.  
  92.        A number of example programs which provide coverage of many
  93.        of the calls in the library are also included. They are
  94.        contained in the dmedia_dev.src.examples portion of the
  95.        install image and get installed in
  96.        /usr/share/src/dmedia/movie. A README file there explains
  97.        each of the example programs.
  98.  
  99.  
  100.        9.2  _C_h_a_n_g_e_s__a_n_d__A_d_d_i_t_i_o_n_s
  101.  
  102.        This section lists changes and additions made to the Movie
  103.        Library since the release of IRIX 5.3.
  104.  
  105.        IRIX 6.3 introduced a new version of the Movie Library. This
  106.        new verion is composed of two high-level DSO's,
  107.        _l_i_b_m_o_v_i_e_f_i_l_e._s_o and _l_i_b_m_o_v_i_e_p_l_a_y._s_o, which contain the
  108.        public movie API calls, together with a few private
  109.        rendering and display port DSO modules (see
  110.        /_u_s_r/_l_i_b/_d_m_e_d_i_a/_m_o_v_i_e/*._s_o) which are loaded internally by
  111.        the movie playback DSO. Applications may link with either
  112.        "-lmovieplay -lmoviefile" or just "-lmoviefile" depending on
  113.        their requirements. Applications do not link directly with
  114.        the low-level rendering/display modules. Applications built
  115.        using versions of _l_i_b_m_o_v_i_e._a or _l_i_b_m_o_v_i_e_G_L._a from previous
  116.        IRIX releases should continue to operate correctly without
  117.        recompile on 6.3 and later releases.
  118.  
  119.           +o IRIX 6.5.12 adds support for reading of 1, 2, 4, 8, 16
  120.             and 24 bit uncompressed AVI files. Originally only 32
  121.             bit uncompressed AVI files were supported.
  122.  
  123.           +o IRIX 6.5.12 adds support for reading of Microsoft RLE
  124.             compressed AVI files.
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.           +o IRIX 6.5.12 adds support to allow reading of compressed
  141.             header Quicktime(*) movie files.
  142.  
  143.           +o For Irix 6.5, the movie library has been enhanced to
  144.             support certain common kinds of compressed audio in
  145.             QuickTime(*) movies. QuickTime(*) movies with IMA4
  146.             (also known as IMA4:1) compressed audio tracks are now
  147.             readable, as are DV-Audio compressed tracks. (DV-Audio
  148.             compression is also supported in DIF streams.) Note
  149.             that IMA4 is supported read-only (ie, decompress-only).
  150.             DV-Audio compressed data can be created only when
  151.             exporting a DIF stream using mmmmvvvvEEEExxxxppppoooorrrrttttFFFFllllaaaatttttttteeeennnneeeeddddFFFFiiiilllleeee.
  152.  
  153.           +o Standard QuickTime(*) Motion JPEG-A (MJPEG-A) field
  154.             based compression is now supported in Irix 6.5 (it was
  155.             available in 6.3 with appropriate patches as well).
  156.             MJPEG-A is a powerful format because it is cross-
  157.             platform, so that the same movie can be played on
  158.             SGI's, Mac's and PC's in realtime, with appropriate
  159.             hardware, such as the O2's built in ICE hardware.
  160.  
  161.           +o In Irix 6.5, a new function has been added to allow
  162.             simplified generation of movies which are optimized for
  163.             playback. Please see man mmmmvvvvEEEExxxxppppoooorrrrttttFFFFllllaaaatttttttteeeennnneeeeddddFFFFiiiilllleeee.
  164.  
  165.           +o The movie library supports more hardware for playing
  166.             back movies, such as Cosmo Compress, O2's built in ICE,
  167.             Impact Compression, etc.
  168.  
  169.           +o Several functions have been added to the Movie Library
  170.             to provide time based access to and editing of movie
  171.             data in addition to the existing frame based calls.
  172.             See the "FRAME, TIME and TIMESCALE" section of
  173.             mmmmvvvvIIIInnnnttttrrrroooo(3dm) for more details.
  174.  
  175.           +o In 5.3 mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) would return different formats
  176.             (eg, pixel packing, orientation, etc), depending upon
  177.             how the data was stored in the file. Now
  178.             mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) ALWAYS returns the same pixel
  179.             formats.
  180.  
  181.             mmmmvvvvIIIInnnnsssseeeerrrrttttFFFFrrrraaaammmmeeeessss(3dm) used to expect its input format
  182.             (eg, pixel packing orientation, etc) to be correlated
  183.             to the file format/codec. Now it ALWAYS expects data to
  184.             be in the same format.
  185.  
  186.             These changes were made to prevent requiring every
  187.             application to understand how to perform image
  188.             conversions.
  189.  
  190.             See the man page for additional information about
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                   - 4 -
  203.  
  204.  
  205.  
  206.             mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) and mmmmvvvvIIIInnnnsssseeeerrrrttttFFFFrrrraaaammmmeeeessss(3dm).
  207.  
  208.           +o The QuickTime(*) Compressor Library product no longer
  209.             exists.  Applications that link with _l_i_b_m_o_v_i_e._s_o will
  210.             now be able to read and create movies compressed with
  211.             the Apple Animation and Apple Video compression
  212.             algorithms without linking with _l_i_b_q_t._a or calling
  213.             mmmmvvvvIIIInnnniiiittttQQQQuuuuiiiicccckkkkTTTTiiiimmmmeeee. Applications will also be able to read
  214.             and write Cinepak (Compact Video) movies.  The movie
  215.             library will also recognize and play back QuickTime(*)
  216.             movies compressed with Indeo(tm) compression, and
  217.             DVC/DVCPro compression.
  218.  
  219.           +o The Movie Library now supports multiple audio and video
  220.             tracks in QuickTime(*) files.  New calls allow the
  221.             programmer to find the number of tracks and retrieve
  222.             track handles on each one.  Multiple tracks of a given
  223.             medium may be played simultaneously or sequentially
  224.             under program control.
  225.  
  226.           +o The Movie Library has been extended to allow external
  227.             data references for tracks.  A track that contains an
  228.             external data reference has data that resides in a
  229.             separate file.  The Movie Library access this file as
  230.             necessary during movie editing and playback.
  231.  
  232.           +o The Movie Library no longer requires that each frame in
  233.             an image track have the same duration.  A sequence of
  234.             an image track may be scaled by an application to
  235.             increase or shorten its playback time.
  236.  
  237.           +o In general, many more forms of QuickTime(*) movies are
  238.             recognized.
  239.  
  240.           +o Read only support for MPEG I Systems streams is new in
  241.             this version of the Movie Library.  MPEG movies may be
  242.             played using the Movie Library's playback calls.
  243.             However, most calls that manipulate movie data, such as
  244.             editing or reading compressed images, are not supported
  245.             for MPEG files.
  246.  
  247.           +o AVI support has been added to the movie library.  The
  248.             compression types currently supported for AVI files are
  249.             Cinepak, Indeo, and uncompressed.
  250.  
  251.           +o The Movie Library now supports controlling the image
  252.             compression quality, bitrate, and keyframe frequency of
  253.             data in an image track.  These qualities can be
  254.             controlled by setting the appropriate DMparams when the
  255.             image track is created.  See the mmmmvvvvAAAAddddddddTTTTrrrraaaacccckkkk(3dm) man
  256.             page for more details.
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                   - 5 -
  269.  
  270.  
  271.  
  272.           +o The Movie Library now supports software scaling of the
  273.             volume of a playing movie.  See
  274.             mmmmvvvvGGGGeeeettttMMMMoooovvvviiiieeeePPPPllllaaaayyyyVVVVoooolllluuuummmmeeee(3dm) for more details.
  275.  
  276.  
  277.  
  278.        9.3  _B_u_g__F_i_x_e_s
  279.  
  280.        This sections lists some of the known bugs that have been
  281.        fixed since 5.3
  282.  
  283.           +o Bug #610693: As of Irix 6.5.1, uncompressed frame-based
  284.             (ie, interleaved-fields) uncompressed 8-bit YUV422
  285.             QuickTime(*) movies generated by the SGI movie library
  286.             will now be readable on other platforms which support
  287.             QuickTime(*) 3.0. Note that these movies may not play
  288.             back correctly on older Irix releases, but movies
  289.             generated on older Irix releases will be playable on
  290.             Irix 6.5.1.
  291.  
  292.           +o The problems many users ran into with upside down and
  293.             non-color converted uncompressed QuickTime(*) movies
  294.             are solved by the fact that mvReadFrames now always
  295.             returns XBGR, bottom-to-top, non interlaced data.
  296.  
  297.           +o Stereo audio in QuickTime(*) files is now handled
  298.             correctly.
  299.  
  300.           +o The Movie Library's playback engine has been modified
  301.             to pick up edits made to a movie.  For example, if
  302.             frames are added to a movie that's been bound to a
  303.             window but is currently not playing the playback
  304.             instance will pick up the change and play all the
  305.             frames of the movie.  It should be noted that no edits
  306.             should be made to the movie while the movie is
  307.             currently playing.
  308.  
  309.           +o The Movie Library now supports playing back tracks of
  310.             different lengths.  For example, playing a movie with a
  311.             video track that is longer than its audio track will
  312.             play all the frames of the video track even after the
  313.             audio has stopped playing.
  314.  
  315.           +o Calling mmmmvvvvSSSSttttoooopppp as the playback engine reached the last
  316.             frame of a movie could result in a deadlock condition
  317.             in the 5.3 Movie Library.  This can no longer happen.
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                   - 6 -
  335.  
  336.  
  337.  
  338.        9.4  _K_n_o_w_n__P_r_o_b_l_e_m_s__a_n_d__W_o_r_k_a_r_o_u_n_d_s
  339.  
  340.  
  341.        This section lists some of the known problems with the Movie
  342.        Library.
  343.  
  344.           +o The SGI movie file format used by the Movie Library is
  345.             different from that used prior to the release of Irix
  346.             5.2.  However, movies in the older format can still be
  347.             read and played by the Movie Library. Only the current
  348.             format can be written.
  349.  
  350.           +o If the machine on which you are playing a movie cannot
  351.             handle the frame rate specified, the audio may sound
  352.             choppy.
  353.  
  354.           +o Setting the play speed of the movie to 0 with
  355.             mvSetPlaySpeed() will cause the movie library to crash.
  356.             The workaround for this is to call mvStop() instead of
  357.             setting the play speed to 0.
  358.  
  359.           +o If a QuickTime(*) movie contains complex elements that
  360.             the Movie Library does not fully support, the movie
  361.             will be opened read only.  The movie must be copied to
  362.             create a movie that can be edited.
  363.  
  364.        (*) QuickTime is a registered trademark of Apple Computer,
  365.        Inc.
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.